delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/07/28/17:31:53

X-Spam-Check-By: sourceware.org
MIME-Version: 1.0
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" <psmith AT gnu DOT org>
Reply-To: "Paul D. Smith" <psmith AT gnu DOT org>
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
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 <cgf-no-personal-reply-please AT cygwin DOT com> 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 <psmith AT gnu DOT org>          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/

- Raw text -


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