add explicit check for cygwin make

RESOLVED WONTFIX

Status

()

Core
Build Config
RESOLVED WONTFIX
13 years ago
8 years ago

People

(Reporter: cls, Assigned: cls)

Tracking

Trunk
x86
Windows XP
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(1 attachment)

1.49 KB, patch
Benjamin Smedberg
: review+
Details | Diff | Splinter Review
(Assignee)

Description

13 years ago
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.
(Assignee)

Comment 1

13 years ago
Created attachment 179054 [details] [diff] [review]
v1.0
Assignee: nobody → cls
Status: NEW → ASSIGNED
Attachment #179054 - Flags: review?(benjamin)

Comment 2

13 years ago
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+

Comment 3

13 years ago
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.
(Assignee)

Comment 5

13 years ago
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 ?

Comment 6

13 years ago
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 7

13 years ago
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?
(Assignee)

Comment 8

13 years ago
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.

Comment 9

13 years ago
(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.
(Assignee)

Comment 10

13 years ago
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
Last Resolved: 13 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.