X-Spam-Check-By: sourceware.org Message-ID: <4522FE4E.70104@eagercon.com> Date: Tue, 03 Oct 2006 17:20:30 -0700 From: Michael Eager User-Agent: Thunderbird 1.5.0.4 (X11/20060614) MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: gcc build problem - make vpath References: <014f01c6e733$ef2e11c0$a501a8c0 AT CAM DOT ARTIMI DOT COM> In-Reply-To: <014f01c6e733$ef2e11c0$a501a8c0@CAM.ARTIMI.COM> Content-Type: text/plain; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com 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 and this rule > is how to generate .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 AT eagercon DOT 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/