[jamming] Jambase for Macintosh MPW

mpsuzuki at hiroshima-u.ac.jp mpsuzuki at hiroshima-u.ac.jp
Wed Sep 28 09:15:18 PDT 2005


Dear Sirs,

On Wed, 28 Sep 2005 16:50:25 +0900
mpsuzuki at hiroshima-u.ac.jp wrote:
>Next issue is updating Jambase for vanilla MPW.
>Please wait for my next post.

Now I'm writing a patch for Jambase, to use Jam in vanilla MPW.
MPW has a tool "CreateMake" to generate MPW Makefile, I collect
its outputs for applications & libraries, and trying to reflect
them into Jamfile.

http://developer.apple.com/tools/mpw-tools/commandref/createmake.html

It seems that MPW has too many switchs to specify target.
(line starts with '*' means available target for specified
 conditions)

CPU = m68k
    binary format = classic
        subformat = model near (16bit pointer)
            * target = Application      (GUI application)
            * target = SIOW Application (CLI application)
            * target = MPW Tool         (CLI application in MPW Shell)
            * target = Static Library   (Archive library)
            * target = Code Resource    (resource fork)
        subformat = model far  (32bit pointer)
            * target = Application      (GUI application)
            * target = SIOW Application (CLI application)
            * target = MPW Tool         (CLI application in MPW Shell)
            * target = Static Library   (Archive library)
            * target = Code Resource    (resource fork)
    binary format = CFM-68K
        * target = Application      (GUI application)
        * target = SIOW Application (CLI application)
        * target = Static Library   (Archive library)
        * target = Shared Library   (Shared library)
        * target = Code Resource    (resource fork)
CPU = PowerPC
    binary format = CFM
        framework = vanilla
            * target = Application      (GUI application)
            * target = SIOW Application (CLI application)
            * target = MPW Tool         (CLI application in MPW Shell)
            * target = Static Library   (Archive library)
            * target = Shared Library   (Shared library)
            * target = Code Resource    (resource fork)
        framework = Carbon
            * target = Application      (GUI application)
            * target = Static Library   (Archive library)
            * target = Shared Library   (Shared library)
            * target = Code Resource    (resource fork)

1. OSPLAT utilization
---------------------
My first question is the level that "OSPLAT" can specify.
Of course, CPU is suitable for OSPLAT to include.
I think binary format is either suitable for OSPLAT to include.
But I don't think subformat, framework, target are not suitable
for OSPLAT to include. How do you think about?

2. Switchs for MPW target
-------------------------
My second question is "how to pass the information which OS, OSMINOR,
OSPLAT don't have?" (subformat, framework, target).

For example, in the case of
	CPU = m68k && binary format = classic && subformat = model far,
when "Hello World" is compiled as MPW Tool (an application which is
executed from MPW Shell command line), the compiled binary should be
typed as "MPST" (by adding '-t "MPST"' to LDFLAGs).
If same source is compiled as SIOW Application (an application which
opens CLI window by itself), the compiled binary should be typed as
"APPL" (by adding '-t "APPL"' to LDFLAGS). Of course, additional
libraries to open CLI window should be added to LDFLAGS.
But, the source of "Hello World" is completely same in both case,
so I think explicit specification of SIOW Appl./MPW Tool in Jamfile
is not expected. And, I think, software maintainer don't want to 
write each building rules into Jamfile either (because Jamfile
becomes complexed). Possibly it is expected that Jam has builtin
rules for all subformat, frameworks and targets, and users can
pass minimum switches to choose builtin rule.

So, how to pass such information (for minimum switch) to Jam?

Regards,
mpsuzuki



More information about the jamming mailing list