X-Spam-Check-By: sourceware.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <17610.33331.648690.951567@lemming.engeast.baynetworks.com> Date: Fri, 28 Jul 2006 17:31:31 -0400 To: cygwin AT cygwin DOT com, bug-make AT gnu DOT org Subject: Re: 3.81 and windows paths In-Reply-To: <20060728145013.GC16728@trixie.casa.cgf.cx> References: <20060727195042 DOT GC27890 AT brasko DOT net> <44C92033 DOT A2978A8E AT dessent DOT net> <17609 DOT 11132 DOT 462789 DOT 443104 AT lemming DOT engeast DOT baynetworks DOT com> <20060727221136 DOT GD6653 AT trixie DOT casa DOT cgf DOT cx> <17610 DOT 6020 DOT 12729 DOT 506044 AT lemming DOT engeast DOT baynetworks DOT com> <20060728145013 DOT GC16728 AT trixie DOT casa DOT cgf DOT cx> X-Mailer: VM 7.19 under Emacs 21.4.1 From: "Paul D. Smith" Reply-To: "Paul D. Smith" Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Unsubscribe: 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 %% Christopher Faylor writes: >> Or is there something special going on that means this won't work? cf> I think this has been answered later in the thread, but the short answer cf> is - the MinGW make won't recognize the cygwin mount table or symlinks, cf> so you can't use cygwin paths in a MinGW makefile without resorting to cf> something like "cygpath". Aha. Gotcha. Yes that would be a problem. >> Regardless, I still wonder whether my idea of building make for a POSIX >> environment with Cygwin, but setting HAVE_DOS_PATHS explicitly, would >> work. cf> I briefly thought that this might be a possibility but I've since cf> remembered cases where people complained about their linux cf> makefiles not working correctly due to the colon handling in 3.80. Hm. I just can't think of any but the most obscure cases where this is true. The DOS pathname handling in vanilla GNU make, as far as I know, is very specific: if and ONLY if the first character of a pathname is a letter and the second is a colon, then the path is considered a DOS path. The only constructs where the meaning is ambiguous would be very rare; something like: foo : c:bar should this be interpreted as a static pattern rule: foo : c : bar or with the DOS path "c:bar"? In this case it's obvious to us since the latter leads to a syntax error but of course make doesn't know that when it's parsing tokens. Any ambiguity is trivially solved by adding whitespace before and/or after the ":" in target rules. To be clear: I'm certainly not suggesting that enabling HAVE_DOS_PATHS will always behave correctly for any valid POSIX makefile, or even any potentially valid Linux makefile. However, it seems quite rare to run into a conflict, so much so that I'm not sure it's worth worrying about. I suppose there might be some backslash issues. I really don't remember what HAVE_DOS_PATHS does with backslashes in target/prerequisite pathnames. YM, of course, MV :-) -- ------------------------------------------------------------------------------- Paul D. Smith Find some GNU make tips at: http://www.gnu.org http://make.paulandlesley.org "Please remain calm...I may be mad, but I am a professional." --Mad Scientist -- 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/