Closed Bug 174405 Opened 19 years ago Closed 19 years ago

Allow Classic Mac build with cw command line tools


(SeaMonkey :: Build Config, enhancement)

Mac System 9.x
Not set


(Not tracked)



(Reporter: tim, Assigned: tim)


Split off from bug 119589 for Classic rather than Mach-O build issues. 
Relevant discussion copied below.

------- Additional Comment #30 From TimMaroney 2002-10-11 15:56 ------- 

I am looking at making the same kind of build for Mac Classic PPC and 
Carbon builds with the MPW Shell. All the major GNU tools exist as MPW 
tools except gmake. My initial investigation indicates gmake is easy to 
port. If we can build for Classic without CodeWarrior project files, that 
should reduce the maintenance cost of the Classic platform as it moves 
towards the end of its life.

------- Additional Comment #31 From Conrad Carlen 2002-10-12 08:09 

> My initial investigation indicates gmake is easy to port.

That would be so cool! There would be some additional challenges, like 
the IDL compiler, though.

------- Additional Comment #32 From TimMaroney 2002-10-13 09:45 ------- 

xpidl is a command-line tool on other platforms so I don't imagine it would 
be much trouble to make it an MPW tool. But yes, it's not just gmake. The 
Windows build instructions list about a dozen required cygwin packages, 
and the worst case would be that every command in every one of those 
packages would be needed in MPW. In practice, though, it looks like most 
of them aren't  needed. Basic commands like mkdir, cp, rm, mv and touch 
could be hooked up to MPW scripts through aliasing.

My impression is that Mozilla does not use shell scripts, only perl scripts. 
If I'm right about that, the chance of requiring large sections of the UNIX 
command set is mostly limited to make instructions (that is, build rules in 
makefiles). If I'm wrong, though, the task could be much bigger. I'm 
thinking of trying to build with a crippled cygwin to see what UNIX 
commands are required.

------- Additional Comment #33 From TimMaroney 2002-10-13 11:04 ------- 

config/ might need some MPW build rules. Not a problem.

From eyeballing, the commands I'm seeing are perl, cat, cd, cp, 
echo, make, rm, sed, sleep, test and touch. Not too bad as far as porting 
needs go. I think all those exist except test and make, and I'm well along 
on make.

There is a good deal of shell-ism in, such as if, for and &&. 
There are only 5 for's, but 24 &&'s and 18 if's. (There are no ||'s outside 
sed commands.) MPW is compatible with && and ||, and the minor 
idiosyncracies of MPW if and for syntax can be handled by running the 
commands through sed.

Serialization may present an issue on MPW, in that one has to put out 
commands and then execute them, rather than being able to run them 
inside the gmake tool. Creating commands may be dependent on what 
has happened before, and in MPW gmake, the predecessor commands 
would not have executed yet. This could be solved by having make stop 
itself at points and insert a continuation make command at the end of its 
output in certain make rules, or in other ways. It was not really a problem 
for MPW's own Build and may not be one here.

------- Additional Comment #34 From Wan-Teh Chang 2002-10-14 10:22 

Please open a new bug for making Mac Classic PPC and Carbon builds 
with the MPW Shell.  Each bug should focus on one issue.  This bug is 
about using the CodeWarrior commandline tools to build mach-o.

------- Additional Comment #35 From Scott Collins 2002-10-14 10:23 ------- 

Building under MPW would be great; this would significantly lower the bar 
(certainly the financial bar, possibly the complexity bar) for people who 
want or need CFM builds after our current focus has shifted to mach-o.

My understanding is that MPW will remain a Classic application.  This 
probably is not a hindrance.  Do we think MPW will remain available? 
(forget supported)
Scott: Yes, MPW will remain Classic. We could also consider a 
cross-platform Mozilla Classic build from inside the OS X environment, in 
which gmake is already available. My gmake port to MPW is going well 
and should be ready for self-build shortly. Perhaps we can transition to 
OS X cross-compilation for Classic when it becomes the majority Mac 
user platform? I think that's the answert to MPW EOL issues, anyway.

Lowering the financial bar is possible but would require a build with MPW 
C++ rather than MW command-line compilers. gcc has generated inferior 
code compared with platform-specific compilers for Mozilla in the past 
IIRC. I am not sure how hard using the MPW compiler would be; your 
previous experiences with compiler changeovers are probably indicative. 
It's not a bad compiler and may have better optimization than MW, though 
it hasn't changed in a long time. This is not something I am considering 
as part of this bug.
Adding self
autoconf was not taken into account. There are six files which 
are run through autoconf to create configurations for make (mostly putting 
out environment variables, I believe). They incorporate a good deal of 
shell scripting, some of which is fairly obscure, and therefore presents an 
MPW problem.

Options: (1) Don't use autoconf on MacOS Classic, and instead create the 
configurations by hand. (2) Port autoconf but fix any shell scripting in so that it works in MPW if it needs to. (3) Use autoconf but 
require it to be run when changes on a different platform 
(cygwin, os x, linux....) and check in an MPW specific configuration file for 
Mac from there.

All three options are probably feasible. Given that does not 
change often, (1) or (3) seem best, and probably (1) so the platform can 
remain self-contained.
On looking at the source code for autoconf, it's made entirely of m4 and perl
scripts, both of which are available under MPW. That should make porting much
easier, but it still leaves open the question of shell script compatibility.
QA to jj
QA Contact: granrose → jj
Ever confirmed: true
Recommend WONTFIX. Classic support is dead.
Mozilla CFM build is dead.
Closed: 19 years ago
Resolution: --- → WONTFIX
Summary: [classic] Allow Mac build with cw command line tools → Allow Classic Mac build with cw command line tools
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.