Subject: Re: Make 3.75: Win32-Specific Fix for Filenames in Dependencies a nd i n Vpath
From: [email-masked] (Eli Zaretskii)

11 Feb 1997 23:07:41 -0800
Approved: [email-masked]
Distribution: cygnus
Message-ID: <Pine.SUN.3.91.970212075845.6507B-100000.cygnus.gnu-win32@is>
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-Sender: eliz@is
Original-To: "Griswold, Victor" <[email-masked]>
Original-cc: [email-masked], [email-masked]
In-Reply-To: <199702111744.MAA00589@telxon>
Original-Sender: [email-masked]

On Tue, 11 Feb 1997, Griswold, Victor wrote:

> You do not understand the build environment.  The only place drive
> letters can get introduced is through environment variables which point
> to the absolute path for source, the absolute path for a given build,
> etc.  There are no drive letters in the Makefiles themselves.

Now I am confused indeed.  If the value of VPATH comes from the 
environment, then why should Make itself care about the separator 
character?  On Unix, the value should be constructed with `:', while on 
Win32 use `;'.  Isn't that what you want?

> Use of
> conditionals in Makefiles is unnecessary, cluttering, and error-prone,
> especially when having to take into account multiply-nested variables
> and string operations on them.

Just define the separator character to be computed by Make at run time 
(`:' for Unix, `;' for Win32), then use it throughout the Makefile, if 
you at all need it.  It indeed adds a bit to the clutter, but so is 
#ifdef WIN32 in the sources of any portable C program: sometimes you've 
got to use it if you want portability.

> This is a semi-"religious" issue of which is more important:
> compatibility between MSDOS/MSVC Makefiles with Cygwin32, or
> compatibility between Unix Makefiles with Cygwin32.

IMHO, both are equally important.

> I do not intend to,
> and _will_ not, open up another "Text vs. Binary" file issue here.

That is a non-issue as far as Makefile go.  Make ported to either MSDOS 
or Win32 doesn't have any problems reading Unix-style text files (where 
the lines have only a Linefeed at their end).  So just run your Makefiles 
through dostounix (or any similar converter) before packaging your 
software, and you are all set.  That's what I do in such cases.

> to MSDOS/MSVC and feel that compatibility with those other ports of Make
> is most important.  Freedom of choice is a Good Thing when available.

You have the sources, so you are free to make any changes you like in Make
and use it locally.  That is what free software is all about.  But you
also say (as dar as I understand) that the Win32 port should change its
behavior for others (by incorporating the changes you've posted), which is
something entirely different.

Anyway, we seem to disagree on this, and I believe we understand what 
each other thinks.  Since I'm not the maintainer of GNU Make, my views 
don't oblige anybody.  So let's leave it at that.
-
For help on using this list, send a message to
"[email-masked]" with one line of text: "help".