Mail Archives: djgpp-workers/1999/05/03/14:41:10
> So, how about /dev/env/DJDIR AT c:/djgpp@/bin ? Comments, anybody?
I'd rather not use '@'. While it may work with the current version
of autoconf the autoconf/automake/libtool people usually don't care
too much about backwards compatibility, and things might break in a
future time.
Also I'd propose a character that does not expand under any
know DOS or Unix shell. The obvious idea /dev/env/DJDIR=c:/djgpp=/bin
has the drawback that you cannot assign a '=' to a shell variable
under most DOS shells.
I'm not fully sure, but I think /dev/env/DJDIR~c:/djgpp~/bin
will pass unchanged through all shells, make and autoconf
(because ~ is only expanded at the beginning of a filename).
Markus
On 03-May-99 Eli Zaretskii wrote:
>
> On Mon, 3 May 1999, Michel de Ruiter wrote:
>
>> > ?default? was chosen because `?' cannot appear in file names.
>> > I could use other characters, like `*' or `"' (the double quote),
>> > but they didn't seem more attractive. However, if people like them
>> > better, changing that is simple.
>>
>> ? is fine IMHO.
>
> Well, it turns out it's not ;-).
>
> The problem is with Make: if it sees any wildcard characters in anything
> that winds up in a target or a dependency name, it interprets that as a
> wildcard and tries to expand it. Here's the bummer: if the wildcard
> doesn't match anything, it expands to an empty string, and Make fails to
> do whatever we meant it to do 9which is to pass the whole thing to some
> library function).
>
> The upshot of this is that if you say something like this:
>
> ./configure --prefix=/dev/env/DJDIR?c:/djgpp?
>
> The configure script will (hopefully; I didn't try yet) put a line like
> this in the Makefile's:
>
> prefix=/dev/env/DJDIR?c:/djgpp?
>
> However, when Make runs, if it sees e.g. something like this:
>
> ${prefix}/bin:
> mkdir $@
>
> it will say "*** No targets. Stop.", and you lose.
>
> So it seems that wildcard characters are out, and we will need to use
> characters that do appear in file names. I have run `find' on my quite
> busy disks, and the `@' character came out as a clear winner: not a single
> file had it. `@' is not too special for Bash, either (only after a `$'),
> and DJGPP only treats it as special if it is the first character of a
> command-line argument. If a literal `@' needs to be in the name of a
> /dev/env construct, we could allow two `@'s in a row to mean a literal
> `@'.
>
> So, how about /dev/env/DJDIR AT c:/djgpp@/bin ? Comments, anybody?
>
----- Markus F.X.J. Oberhumer <markus DOT oberhumer AT jk DOT uni-linz DOT ac DOT at> -----
----- http://wildsau.idv.uni-linz.ac.at/mfx/ -----
----- 5E CB 5C 85 DE AF 9E BF E9 DA 7E 6A 39 F8 CC 67 -----
3 WARPS TO URANUS
- Raw text -