Mailing-List: contact cygwin-help@sourceware.cygnus.com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe@sources.redhat.com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin@sources.redhat.com>
List-Help: <mailto:cygwin-help@sources.redhat.com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner@sources.redhat.com
Delivered-To: mailing list cygwin@sources.redhat.com
Message-ID: <C2D7D58DBFE9D111B0480060086E963504320E55@mail.gft.de>
From: =?iso-8859-1?Q?=22Schaible=2C_J=F6rg=22?= <Joerg.Schaible@gft.com>
To: cygwin@sourceware.cygnus.com
Subject: RE: Filename case-sensitivity of make
Date: Thu, 28 Jun 2001 14:07:36 +0200
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2653.19)
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id IAA06861

Hi Erik,

Unix has case-sensitive file names, NT/2000 has case-sensitive file names,
just 95/98/Me is incapable of it. So what would you expect using a Unix tool
? Cygwin make *has to be* case-sensitive!

>A am jusing Cygwin make (in UNIX mode) on a WinNT platform. 
>Until now I a
>have defined all rules explicitly like
>
>main.o: main.c
>      gcc -c main.c
>
>which is case-insensitive regarding the source file.

This makes *me* nervous ...

> However, 
>an implicit
>rule like
>
>%.o: %.c
>      gcc -c $*.c
>
>seems to be case-sensitive. This gives problems when sharing 
>source files
>between computers with WinNT and Win95, as Win95 sometimes 
>changes the case
>of the filenames. Is there any particular reason for this 
>strange behaviour?

This is what I would have expectet in *any* case.

I reproduced following effects with 2000:
Having the files main.c, HELLO.C, and this.c and your makefile above
make main.o => Compiles with explicit rule
make this.o => Compiles with implicit rule
make hello.o => No rule
make HELLO.o => Compiles with *predefined* implicit rule
make -r HELLO.o => No rule

IMHO this differences are by chance. It may depend whether make checks its
files with fstat to compare the time stamp or by name using the directory
entry. I am sure that both variants are used in make (no, I have not looked
at the source). With Unix it does not make any difference, while ftstat will
find the file in NT/2000 independent of the case.

Greetings,
Jörg

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

