www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/1999/05/03/11:26:49

Date: Mon, 3 May 1999 18:24:49 +0300 (IDT)
From: Eli Zaretskii <eliz AT is DOT elta DOT co DOT il>
X-Sender: eliz AT is
To: Michel de Ruiter <Michel AT smr DOT nl>
cc: "'DJGPP workers'" <djgpp-workers AT delorie DOT com>
Subject: RE: v2.03: wrapping up
In-Reply-To: <B0FEA00E82A7D1118BFB00A0CC990278213296@ARGON>
Message-ID: <Pine.SUN.3.91.990503181220.8375A-100000@is>
MIME-Version: 1.0
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

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?

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019