[Date Prev][Date Next][Thread Prev][Thread Next] [Search] [Date Index] [Thread Index]

[MacPerl-Modules] Building Extensions with MPW/MrC...



I've got a MacPerl XS I've been wanting to write for quite some time 
and recently decided I'd go ahead and download MPW and take a crack 
at it. Being a glutton for punishment, I've opted to go with MrC, rather 
than shelling out bucks for the MetroWerks compilers.

So far, I've downloaded the 5.2.0r4 source code, installed dmake 
(updating the BuildCommands and BuildProgram scripts) and run h2xs.pl 
to get a functioning h2xs, but that part will come in later. Right 
now, I'm just trying to build the XPlusX example from MPPE.

Two issues I'm running into right now:
 - The *BuildRules.mk files are biased toward MetroWerks.
 - I don't have the old libraries (my MPPE CD was stolen from 
   checked baggage a year or so ago).

So my questions:

First, has someone documented the process of compiling with MrC so I 
don't need to ask a lot of questions that have already been written 
up?

Next,
 - Are the old libraries and interfaces necessary for a small project that 
   mostly amounts to a Perl interface to precompiled shared libraries?

 - Do I need to succesfully compile miniperl first, or can I just  
   specify the perl tool itself in the BuildRules files?

 - Is there an easy way to determine which Metrowerks compiler flags 
   translate to the corresponding MrC compiler flags so I can edit 
   the BuildRules files accordingly?

 - BuildRules.mk contains a number of patterns to allow bulk compilation 
   with the Metrowerks compilers for the sake of speed. Will these 
   tricks still work with MrC or am better off just commenting the lot 
   of them out?

For those who are interested in looking at something more concrete, 
for my first crack at it, I've edited the output from dmake by hand and 
changed (newlines added for readability):

MWCPPC -nosyspath -sym on -d MULTIPLICITY -w nounusedarg 
 -i- -i : -i "::::sfio:"include: -i "::::GUSI:"include: 
 -i "Wail:Applications:MPW:Interfaces:OldMWCIncludes:" -i "::::IC:" 
 -i "::::AEGizmos:"include: -i "::::db:"include -i "::::perl:ext:GD:libgd:" 
 -i "::::XL:"  -i ::: -i- -i : 
 -w nopossible -traceback -opt all -t -ext .PPC.o {SrcPPC} -o :Obj:

To:

MrC -inclpath ignoresys -sym on -d MULTIPLICITY -w off 
 -i : -i "::::sfio:"include: -i "::::GUSI:"include: 
 -i "Wail:Applications:MPW:Interfaces:OldMWCIncludes:" -i "::::IC:" 
 -i "::::AEGizmos:"include: -i "::::db:"include -i "::::perl:ext:GD:libgd:" 
 -i "::::XL:"  -i :::  -i : 
 -w off -traceback -opt off -t -fatext {SrcPPC} -o :Obj:

This nets me a failure to find varargs.h, referenced in sfio.h and, I 
assume, normally living in OldMWCIncludes (I created empty directories 
in my Libraries and Includes directories as placeholders). But I'm 
not sure if I've adequately mapped the MWCPPC flags to MrC flags.

-Charles Albrecht
 cwa2@cornell.edu

==== Want to unsubscribe from this list?
==== Send mail with body "unsubscribe" to macperl-modules-request@macperl.org