Closed Bug 288303 Opened 20 years ago Closed 20 years ago

add explicit check for cygwin make

Categories

(Firefox Build System :: General, defect)

x86
Windows XP
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: cls, Assigned: cls)

Details

Attachments

(1 file)

The build instructions at http://www.mozilla.org/build/make-build.html state
that gmake should be used to pull the mozilla tree.  On win32, gmake.exe is
usually the Netscape modified version of GNU make which uses shmsdos as its
shell.  This modified version of GNU make is not usable when building Mozilla. 
Seeing as this appears to be a common problem and our documentation is arguably
misleading, we should add a simple check to ensure that people are using the
proper version of make.
Attached patch v1.0Splinter Review
Assignee: nobody → cls
Status: NEW → ASSIGNED
Attachment #179054 - Flags: review?(benjamin)
Comment on attachment 179054 [details] [diff] [review]
v1.0

How about "Cygwin make is required to build Mozilla. If you typed 'gmake', try
'make' instead."
Attachment #179054 - Flags: review?(benjamin) → review+
botbot: SeaMonkey: 'WINNT 5.0 creature Clobber' has changed state from Success
to Horked.

mozilla/client.mk:203: *** Cygwin make is required to build Mozilla. If you
typed 'gmake', try 'make' instead.  Stop.
The make on creature is cygwin make, but /usr/bin/make -h does not output the
string you're checking for.  /usr/bin/make -v does.
Yay, consistency!  With cygwin make 3.80-1, the cygwin string is in the -h
output.  I'm guessing that creature is using 3.79.1 ?
I see this has been backed out.  Though I gather that since it required dbaron
updating the client.mk file the first time we'll need to update it again to make
the new, backed out version stick.

Please don't do things that could break creature or any of the other old
Tinderboxen without doing the necessary prep work first or talking to someone
who works on those machines on a regular basis (such as myself or dbaron).
Comment on attachment 179054 [details] [diff] [review]
v1.0

Is the change to client.mk really necessary?  If the version of make used to
read client.mk can handle parsing client.mk and getting so far as to invoke
configure, then the only place a check is needed is in configure.in.  Thoughts?
The client.mk check is necessary because non-cygwin makes cannot handle the
parsing of client.mk.  The include directives use absolute paths which require
make to understand cygwin paths.  Also, the shell commands use pipes which
shmsdos.exe (used by gmake.exe) does not support.  The configure.in check was
more of an afterthought for people who use the tarballs to build.
(In reply to comment #8)
> The client.mk check is necessary because non-cygwin makes cannot handle the
> parsing of client.mk.  The include directives use absolute paths which require
> make to understand cygwin paths.  Also, the shell commands use pipes which
> shmsdos.exe (used by gmake.exe) does not support.  The configure.in check was
> more of an afterthought for people who use the tarballs to build.

:(  I had hoped that we could rely on configure/autoconf to do all of the build
dependency work for us.  I guess we're only special-casing what make programs
can parse the mk file which takes most of the sour taste out of my mouth.
We just added support for using msys which has its own version of make.  Our
arguably misleading documentation will have to be cleaned up (again).

Status: ASSIGNED → RESOLVED
Closed: 20 years ago
Resolution: --- → WONTFIX
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: