This is the mail archive of the mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Compatibility problem: Cygwin make and makefile filename case

Earnie Boyd <> writes:

>I wasn't talking about your sources I was talking about the sources to make. 
>You can modify make to do what you want.

Yes, I've understood that.  But that doesn't solve my problem.  I
tried to explain why.

I don't want to use Cygnus make or anything else from the Cygnus
project myself.  I want the sources of our project to compile
everywhere where somebody has got one of the supported pascal
compilers and a(n up to date) version of GNU make.  And the latter
should include Cygnus make.

We could also write in our manual "On Win32 platforms dont't use
Cygnus make since it's not compatible with our archiver.  Use DJGPP
make instead.", but it was nicer if we could simply write: "Get a port
of GNU make for your platform."

>An aside, linking your proprietary program with libcygwin.a forces it to be
>GPL, unless you buy a proprietary use license from Red Hat.  You will need to
>distribute not only your sources under the GPL but also all of the sources
>required to build Cygwin.  Refer to for precise licensing.

Thank you for mentioning that.  But we don't link our program with
anything from Cygwin.  (It doesn't compile with GPC.)

BTW: We would license our project under an OSS license if that was
possible.  But the original author's license doesn't allow that.

>MAKEFILE.  You can change read.c of the make package to also search for

Yes, if the Cygwin project at least will think about integrating this
patch into their sources, I'll do that.

>MAKEFILE.  Or, you can also distribute a GNUmakefile.

"GNUmakefile" is also no SFN like "Makefile" isn't either.  At the
time of writing our makefiles are called "Makefile" as workaround to
the compatibility problem.  (So they work with Cygnus make but that
way our sources are not 'DOS-clean'.)

>> The other platforms (including DJGPP GNU make on DOS witch is also
>> LFN-aware) don't habe the problem.

>This has nothing to do with LFN.  It has to do with filename case.

Sorry, I'm no MS-Windows expert.  All I can tell you:

  a) If you call a makefile "Makefile", zip and unzip it on Windows
     98, DJGPP ls shows it as "Makefile" and Cygnus make finds it.
     All fine.

  b) If you call a makefile "makefile", zip and unzip it on Windows
     98, DJGPP ls shows it as "makefile" but Cygnus make doesn't find
     it.  Trouble.  (DJGPP make finds it.)

In b) dir shows the file as "MAKEFILE".  You can of course rename the
file to "makefile" ("mv MAKEFILE foo; mv foo makefile") and then
Cygnus make is able to find it.

>you're having with it.  We would gratefully consider any patch that you might

That sounds much better to me.  I'll try to do that.

>> Of course I would submit a patch if necessary.  It should be rather
>> trivial.  (Not for me.  I would have to install the whole Cygwin
>> compiler stuff before being able to do that simple patch to make make
>> also look for "MAKEFILE".)

>No, you just need the sources for make.  This has nothing to do with the Cygwin

But shouldn't I test a patch before submitting it?  And if I want to
do a patch for the MS-Windows port shouldn't I test it on MS-Windows?

Anyway, below is a little patch that makes GNU make 3.79.1 also look
for "MAKEFILE" on the MS-Windows platform.  ("GNUmakefile",
"makefile", "MAKEFILE", "Makefile")  I tested it as far as possible on
my FreeBSD box (but not until now on MS-Windows, since that would take
much more time for me and you said it isn't necessary).  It was nice if
you would think of integrating it into the GNU make sources.


begin 644 patch-gmake-win32-MAKEFILE.gz

"Wer den Swing in sich hat, kann nicht mehr im Gleichschritt
marschieren." Coco Schumann, Jazzer, Überlebender des KZ

Want to unsubscribe from this list?
Send a message to

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]