[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How to handle data/script files in a VPATH build ?
From: |
Steffen Dettmer |
Subject: |
Re: How to handle data/script files in a VPATH build ? |
Date: |
Fri, 12 Feb 2010 14:15:04 +0100 |
Hi Ralf,
thanks again for your helpful message. It is interesting how many
mistakes (non-portable constructions) can be in such a small
snipped I wrote. Thanks for spotting.
On Wed, Feb 10, 2010 at 9:29 PM, Ralf Wildenhues wrote:
> * Steffen Dettmer wrote on Wed, Feb 10, 2010 at 11:01:34AM CET:
>> module=xyz
>> _mak=${module}.mak
>> echo "# Autogenerated by $0" > ${_mak}
>> echo "${module}files = \\" >> ${_mak}
>> find directoty1 directory2 directory3 -type f \
>> -not -path '*/CVS*' \
>
> With find, -not is not portable, but ! is (suitably escaped when used in
> an interactive shell); -path is not portable either.
ohh, how bad...
I've read a bit about find in info find (I have no `info
findutils' page). It does not tell much about portability but
still a lot... (but I didn't find how to write -path correctly,
fortunatly we can require to have a GNU find :-)).
Just because of my curiosity, when writing portable packages
(i.e. packages compiling ON many platforms), on which platform
this is recommended to do so? GNU/Linux is great for working
because it has all the efficient tools, but bad for testing,
because it is too powerful and everything works :)
Or is there some `mini linux' or alike that uses e.g. busybox
find etc? Then someone could have a virtual machine to test.
>> -not -path '*/*.sw?' \
>> -exec echo "{} \\" \; \
>
> POSIX find only allows you to use {} as a single argument IIRC; you can
> just pass arguments to echo separately here: `-exec echo "{}" \\ \;'.
ohh interesting, thanks. Yes, if I look to the right place
(http://www.opengroup.org/onlinepubs/9699919799/utilities/find.html)
and understand correctly, you do remember correctly:
Historical implementations do not modify "{}" when it appears
as a substring of an -exec or -ok utility_name or argument
string. There have been numerous user requests for this
extension, so this volume of POSIX.1-2008 allows the desired
behavior. At least one recent implementation does support
this feature, but encountered several problems in managing
memory allocation and dealing with multiple occurrences of
"{}" in a string while it was being developed, so it is not
yet required behavior.
>> | sort >> ${_mak}
>
> With sort, you should always normalize the locale, i.e.,
> LC_ALL=C sort
Is having `LC_COLLATE="POSIX"' also sufficient and correct?
(we have this in /etc/profile). But I added export LC_ALL=C to all
that scripts to go sure :)
> Well, don't look at the GNU find(1) manpage if you're looking for
> portable options only. That's what POSIX/SUSv3 is for; the findutils
> info pages are more verbose about portability, too.
How do I get the findutils info pages? Is this `info find' or is
there another one?
oki,
Steffen
- How to handle data/script files in a VPATH build ?, Sylvestre Ledru, 2010/02/03
- Re: How to handle data/script files in a VPATH build ?, Peter Johansson, 2010/02/03
- Re: How to handle data/script files in a VPATH build ?, Sylvestre Ledru, 2010/02/06
- Re: How to handle data/script files in a VPATH build ?, Sylvestre Ledru, 2010/02/09
- Re: How to handle data/script files in a VPATH build ?, Ralf Wildenhues, 2010/02/09
- Re: How to handle data/script files in a VPATH build ?, Steffen Dettmer, 2010/02/10
- Re: How to handle data/script files in a VPATH build ?, Ralf Wildenhues, 2010/02/10
- Re: How to handle data/script files in a VPATH build ?,
Steffen Dettmer <=
- Re: How to handle data/script files in a VPATH build ?, Dr. David Kirkby, 2010/02/12
- portability testing (was: How to handle data/script files in a VPATH build ?), Ralf Wildenhues, 2010/02/20