help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Weird (and convenient) difference between cygwin and DOS


From: Mason
Subject: Re: Weird (and convenient) difference between cygwin and DOS
Date: Thu, 24 May 2012 10:37:36 +0200
User-agent: Mozilla/5.0 (Windows NT 5.1; rv:12.0) Gecko/20120429 Firefox/12.0 SeaMonkey/2.9.1

Eli Zaretskii wrote:

> Mason wrote:
>
>> I'm (grudgingly) running Windows, and I need some Makefile to
>> work whether it is invoked from a bash shell under cygwin,
>> or from Microsoft's CMD shell in the "DOS" command-line.
>>
>> (I'm using GNU Make 3.82, Built for i686-pc-mingw32)
>>
>> I've found a strange way to distinguish between cygwin
>> and DOS, and I wanted to ask if it works by accident
>> or by design, and if there is a "better" way (for any
>> interpretation of "better").
>>
>> Right now, I do:
>>
>> ifdef windir
>>   XX = DOS
>> else
>>   XX = CYGWIN
>> endif
>>
>> and it seems to work, apparently because DOS keeps the environment
>> variable in lower case, while CYGWIN sets it to upper case.
>>
>> What do you think?
> 
> I think you should use the Cygwin build of Make when you use Cygwin
> tools and the MinGW build (the one you have) when you work with native
> Windows tools.  Mixing them is asking for trouble, even though the
> problems are subtle and may seem non-existent.

To tell the truth, I am indeed using Cygwin's gmake under Cygwin
(/usr/bin/make = gmake 3.81 built for i686-pc-cygwin) and the
i686-pc-mingw32 build under DOS.

But your remark doesn't address my main question: how do people
create this kind of "portable" (GNU) makefile?

Right now, I need the test to set the RM command.

In Cygwin, I set RM = rm -f; In DOS, I set RM = del

-- 
Regards.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]