Message-ID: X-Mailer: XFMail 1.3 [p0] on Linux X-Priority: 3 (Normal) Content-Type: text/plain; charset=iso-8859-1 MIME-Version: 1.0 In-Reply-To: X-no-Archive: yes Return-Read-To: markus DOT oberhumer AT jk DOT uni-linz DOT ac DOT at Return-Received-To: markus DOT oberhumer AT jk DOT uni-linz DOT ac DOT at Date: Mon, 03 May 1999 20:41:49 +0200 (CEST) From: "Markus F.X.J. Oberhumer" To: djgpp-workers AT delorie DOT com Subject: RE: v2.03: wrapping up Cc: Michel de Ruiter , eliz AT is DOT elta DOT co DOT il Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id OAA30115 Reply-To: djgpp-workers AT delorie DOT com X-Mailing-List: djgpp-workers AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk > 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 ----- ----- 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