gcc build problem - make vpath

Michael Eager eager@eagercon.com
Wed Oct 4 00:20:00 GMT 2006


Dave Korn wrote:
> On 03 October 2006 22:06, Michael Eager wrote:
> 

>   You mentioned '%' signs in environment variables and VPATH.  Bash and make
> use a '$' to indicate a variable, and make uses '%' to indicate a
> pattern-matching rule.  You're always going to give make a hard time, because
> if it sees
> 
> %.c%.o: 
> 	$(CC) ... blah ...
 >
> how is it going to know whether you're specifying a pattern matching rule for
> generating any .o file from any .c file, or whether the DOS environment var
> %.c% perhaps exists and contains the name of some <sourcefile> and this rule
> is how to generate <sourcefile>.o ?

Actually, the %env% is only indirectly involved.  It was
used in the generation of a symbol in the makefile.
Make never sees the %env% symbol, only a DOS path
which has a drive specification, containing a ":".
But it makes it essentially impossible to simply edit the
makefile to remove the DOS path.

This ambiguity with ":" has been around for a long time.  I don't
know what kind of problems it may have caused.

The decision in make-3.81 was to remove support for DOS filenames.
That violated one of what I consider cardinal rules of backward
compatiblity:  it broke existing, working code, without providing
either (a) diagnostics, (b) deprecation warnings, or (c) options
to retain prior behavior.

I'm not interested in rehashing the issue, which has already
been discussed quite a bit.

>   How did you actually write the configure and make command lines when it went
> wrong?  Did you configure with one version of make and then try and build it
> with the other?

Configure command is in a script.  Pretty much as previously specified.
Make is "make".  Doesn't get much simpler.

A valid makefile should be handled by a working make.
There should be no problem with running configure with
one version of make and building with another.

>> The answer to my last question seems to be yes.  (Thanks
>> Matthew!)  I'll look into using William Hoffman's patched
>> version of make-3.81.
> 
>   This should do the job.

Hope so.


-- 
Michael Eager	 eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list