[GRASS-dev] Makefiles: tar failure on Solaris

Glynn Clements glynn at gclements.plus.com
Thu Nov 16 09:13:23 EST 2006


Markus Neteler wrote:

> looking again at
> https://intevation.de/rt/webrt?serial_num=5257&display=History
> it seems that we have to remove all "tar" usage from Makefiles
> (as already discovered months ago).
> 
> Attached my patch suggestion to lib/symbol/. However, stuff
> like this obviously remains:
> 
> /usr/bin/install: `symbol/extra/CVS' is a directory
> 
> How to get rid of that?

> +	for file in symbol/demo/* ; do $(INSTALL_DATA) $$file $(ETC)/symbol/demo ; done

Several possible options:

1. Use a more specific pattern. E.g. if you know that all of the files
you want to install begin with a lower-case letter, use "[a-z]*"
instead of just "*", if the files all have specific extensions, use
the extension, etc.

2. Use "find | while", e.g.

	find symbol/demo -type f -maxdepth 1 | \
	while read file ; do $(INSTALL_DATA) "$$file" $(ETC)/symbol/demo ; done

3. Use "test -f", e.g.

	for file in symbol/demo/* ; do \
	[ -f "$$file" ] && $(INSTALL_DATA) $$file $(ETC)/symbol/demo ; \
	done

4. Enumerate the individual files, e.g.

	$(INSTALL_DATA) symbol/demo/muchomurka $(ETC)/symbol/demo
	$(INSTALL_DATA) symbol/demo/smrk $(ETC)/symbol/demo

The last one is more work, but it avoids accidentally installing files
which shouldn't be installed, e.g. backup files created by a text
editor.

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




More information about the grass-dev mailing list